package models

import (
	"ginBolg/models/ctype"
)

type UserModel struct {
	MODEL
	//gorm.Model                      // 包含逻辑删除
	NickName       string           `gorm:"size:36" json:"nick_name"`                                                              // 昵称
	UserName       string           `gorm:"size:36" json:"user_name"`                                                              // 用户名
	Password       string           `gorm:"size:128" json:"-"`                                                                     // 密码
	Avatar         string           `gorm:"size:255" json:"avatar"`                                                                //头像
	Email          string           `gorm:"size:128" json:"email"`                                                                 //邮箱
	Tel            string           `gorm:"size:18" json:"tel"`                                                                    //电话
	Addr           string           `gorm:"size:64" json:"addr"`                                                                   //地址
	Token          string           `gorm:"size:64" json:"token"`                                                                  //其他平台唯一ID
	IP             string           `gorm:"size:20" json:"ip"`                                                                     // ip地址
	Role           ctype.Role       `gorm:"size:1;default:3" json:"role"`                                                          // 权限 1管理员 2普通用户 3游客
	SignStatus     ctype.SignStatus `gorm:"size:1" json:"sign_status"`                                                             //  注册来源
	ArticleModels  []ArticleModel   `gorm:"foreignKey:UserID" json:"-"`                                                            // 发布的文章列表
	CollectsModels []ArticleModel   `gorm:"many2many:user_collect_models;joinForeignKey:UserID;JoinReferences:ArticleId" json:"-"` // 收藏的文章列表
}
